From 18af230e17fa2ff801863893fbc0175c5a608e9a Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Wed, 15 May 2013 08:18:53 -0400 Subject: [PATCH] upgrade: Don't require specification of osname Since this is a highly visible command, let's have a sane default and upgrade the currently running OS. --- src/libgsystem | 2 +- src/ostree/ot-admin-builtin-upgrade.c | 22 ++++++++++++++++------ src/ostree/ot-admin-functions.c | 2 +- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/libgsystem b/src/libgsystem index 51736db5..b2a65b23 160000 --- a/src/libgsystem +++ b/src/libgsystem @@ -1 +1 @@ -Subproject commit 51736db5f49b4b798fd2f9d0ccb8eff453105162 +Subproject commit b2a65b235600e340fada441de7e131de9d52d25e diff --git a/src/ostree/ot-admin-builtin-upgrade.c b/src/ostree/ot-admin-builtin-upgrade.c index f8ee8a0a..60def832 100644 --- a/src/ostree/ot-admin-builtin-upgrade.c +++ b/src/ostree/ot-admin-builtin-upgrade.c @@ -40,23 +40,33 @@ ot_admin_builtin_upgrade (int argc, char **argv, OtAdminBuiltinOpts *admin_opts, GOptionContext *context; gboolean ret = FALSE; GFile *ostree_dir = admin_opts->ostree_dir; + gs_free char *booted_osname = NULL; const char *osname = NULL; gs_free char *ostree_dir_arg = NULL; __attribute__((unused)) GCancellable *cancellable = NULL; - context = g_option_context_new ("OSNAME - pull, deploy, and prune"); + context = g_option_context_new ("[OSNAME] - pull, deploy, and prune"); g_option_context_add_main_entries (context, options, NULL); if (!g_option_context_parse (context, &argc, &argv, error)) goto out; - if (argc < 2) + if (argc > 1) { - ot_util_usage_error (context, "OSNAME must be specified", error); - goto out; + osname = argv[1]; + } + else + { + if (!ot_admin_get_active_deployment (NULL, &booted_osname, NULL, cancellable, error)) + goto out; + if (booted_osname == NULL) + { + g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, + "Not in an active OSTree system; must specify OSNAME"); + goto out; + } + osname = booted_osname; } - - osname = argv[1]; ostree_dir_arg = g_strconcat ("--ostree-dir=", gs_file_get_path_cached (ostree_dir), diff --git a/src/ostree/ot-admin-functions.c b/src/ostree/ot-admin-functions.c index c0b71a5f..cc0d3b39 100644 --- a/src/ostree/ot-admin-functions.c +++ b/src/ostree/ot-admin-functions.c @@ -377,7 +377,7 @@ ot_admin_get_active_deployment (GFile *ostree_dir, if (!ot_admin_get_booted_os (&ret_osname, NULL, cancellable, error)) goto out; - if (ret_osname != NULL) + if (ret_osname != NULL && out_deployment != NULL) { gs_unref_object GFile *rootfs_path = NULL; gs_unref_object GFileInfo *rootfs_info = NULL; -- 2.30.2